package com.ppt.android.activity;

import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.view.KeyEvent;
import android.widget.ProgressBar;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

import com.ppt.android.R;
import com.ppt.android.base.utils.BarUtils;
import com.ppt.android.utils.ad.AdCloseCallback;


/**
 * 开屏广告
 * 开屏广告是打开app的时候展示一个3-5s的全屏的广告
 * 开屏广告分冷启动和热启动，冷启动时要尽可能提前开始加载广告，这样才能确保在进入app之前加载到并展示广告
 * 热启动是app切换到后台，并没有真正的退出，这种情况下要能检测到并提前加载广告
 * <p>
 * 开屏广告一般要配合app的启动页来使用，在加载的时间先给用户看启动页，等广告加载成功后展示广告，广告结束进入app内部
 */
public class SplashActivity extends AppCompatActivity {

    private boolean isFinish = false;
    private ProgressBar progressBar;
    private float currentProgress = 0L;
    private static final String TAG = "SplashActivity";


    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_splash);

        BarUtils.setStatusBarLightMode(this, false);
        BarUtils.transparentStatusBar(this);
        progressBar = findViewById(R.id.progress_bar);

//        loadAd();
        // 启动超时定时器
        startTimeoutTimer();


    }

    /**
     * 设置状态栏
     * 子类需要自定义时重写该方法即可
     *
     * @return Unit
     */

    private void startTimeoutTimer() {
        // 启动定时器
        handler.postDelayed(runnable, 30); // 3000 毫秒 = 3 秒
    }


    //开屏页一定要禁止用户对返回按钮的控制，否则将可能导致用户手动退出了App而广告无法正常曝光和计费
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (KeyEvent.KEYCODE_BACK == keyCode || KeyEvent.KEYCODE_HOME == keyCode) {
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }

    private Handler handler = new Handler();
    private Runnable runnable = () -> {

        currentProgress += 0.5F;
        progressBar.setProgress((int) currentProgress);
        if (currentProgress >= 100) {
            startMainActivity();
            isFinish = true;
        } else {
            startTimeoutTimer();
        }

    };





    private void startMainActivity() {
        startActivity(new Intent(getBaseContext(), MainActivity.class));
        SplashActivity.this.finish();
        overridePendingTransition(0, 0);
    }


    @Override
    protected void onDestroy() {
        super.onDestroy();
        handler.removeCallbacks(runnable);
    }


}
